package com.example.innovate.domain;

import java.util.ArrayList;
import java.util.List;

public class StarLevelDOExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public StarLevelDOExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andStarIdIsNull() {
            addCriterion("star_id is null");
            return (Criteria) this;
        }

        public Criteria andStarIdIsNotNull() {
            addCriterion("star_id is not null");
            return (Criteria) this;
        }

        public Criteria andStarIdEqualTo(Integer value) {
            addCriterion("star_id =", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdNotEqualTo(Integer value) {
            addCriterion("star_id <>", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdGreaterThan(Integer value) {
            addCriterion("star_id >", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("star_id >=", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdLessThan(Integer value) {
            addCriterion("star_id <", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdLessThanOrEqualTo(Integer value) {
            addCriterion("star_id <=", value, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdIn(List<Integer> values) {
            addCriterion("star_id in", values, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdNotIn(List<Integer> values) {
            addCriterion("star_id not in", values, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdBetween(Integer value1, Integer value2) {
            addCriterion("star_id between", value1, value2, "starId");
            return (Criteria) this;
        }

        public Criteria andStarIdNotBetween(Integer value1, Integer value2) {
            addCriterion("star_id not between", value1, value2, "starId");
            return (Criteria) this;
        }

        public Criteria andStarModularIsNull() {
            addCriterion("star_modular is null");
            return (Criteria) this;
        }

        public Criteria andStarModularIsNotNull() {
            addCriterion("star_modular is not null");
            return (Criteria) this;
        }

        public Criteria andStarModularEqualTo(String value) {
            addCriterion("star_modular =", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularNotEqualTo(String value) {
            addCriterion("star_modular <>", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularGreaterThan(String value) {
            addCriterion("star_modular >", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularGreaterThanOrEqualTo(String value) {
            addCriterion("star_modular >=", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularLessThan(String value) {
            addCriterion("star_modular <", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularLessThanOrEqualTo(String value) {
            addCriterion("star_modular <=", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularLike(String value) {
            addCriterion("star_modular like", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularNotLike(String value) {
            addCriterion("star_modular not like", value, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularIn(List<String> values) {
            addCriterion("star_modular in", values, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularNotIn(List<String> values) {
            addCriterion("star_modular not in", values, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularBetween(String value1, String value2) {
            addCriterion("star_modular between", value1, value2, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarModularNotBetween(String value1, String value2) {
            addCriterion("star_modular not between", value1, value2, "starModular");
            return (Criteria) this;
        }

        public Criteria andStarLevelIsNull() {
            addCriterion("star_level is null");
            return (Criteria) this;
        }

        public Criteria andStarLevelIsNotNull() {
            addCriterion("star_level is not null");
            return (Criteria) this;
        }

        public Criteria andStarLevelEqualTo(String value) {
            addCriterion("star_level =", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelNotEqualTo(String value) {
            addCriterion("star_level <>", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelGreaterThan(String value) {
            addCriterion("star_level >", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelGreaterThanOrEqualTo(String value) {
            addCriterion("star_level >=", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelLessThan(String value) {
            addCriterion("star_level <", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelLessThanOrEqualTo(String value) {
            addCriterion("star_level <=", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelLike(String value) {
            addCriterion("star_level like", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelNotLike(String value) {
            addCriterion("star_level not like", value, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelIn(List<String> values) {
            addCriterion("star_level in", values, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelNotIn(List<String> values) {
            addCriterion("star_level not in", values, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelBetween(String value1, String value2) {
            addCriterion("star_level between", value1, value2, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarLevelNotBetween(String value1, String value2) {
            addCriterion("star_level not between", value1, value2, "starLevel");
            return (Criteria) this;
        }

        public Criteria andStarRankIsNull() {
            addCriterion("star_rank is null");
            return (Criteria) this;
        }

        public Criteria andStarRankIsNotNull() {
            addCriterion("star_rank is not null");
            return (Criteria) this;
        }

        public Criteria andStarRankEqualTo(String value) {
            addCriterion("star_rank =", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankNotEqualTo(String value) {
            addCriterion("star_rank <>", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankGreaterThan(String value) {
            addCriterion("star_rank >", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankGreaterThanOrEqualTo(String value) {
            addCriterion("star_rank >=", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankLessThan(String value) {
            addCriterion("star_rank <", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankLessThanOrEqualTo(String value) {
            addCriterion("star_rank <=", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankLike(String value) {
            addCriterion("star_rank like", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankNotLike(String value) {
            addCriterion("star_rank not like", value, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankIn(List<String> values) {
            addCriterion("star_rank in", values, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankNotIn(List<String> values) {
            addCriterion("star_rank not in", values, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankBetween(String value1, String value2) {
            addCriterion("star_rank between", value1, value2, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarRankNotBetween(String value1, String value2) {
            addCriterion("star_rank not between", value1, value2, "starRank");
            return (Criteria) this;
        }

        public Criteria andStarPointIsNull() {
            addCriterion("star_point is null");
            return (Criteria) this;
        }

        public Criteria andStarPointIsNotNull() {
            addCriterion("star_point is not null");
            return (Criteria) this;
        }

        public Criteria andStarPointEqualTo(String value) {
            addCriterion("star_point =", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointNotEqualTo(String value) {
            addCriterion("star_point <>", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointGreaterThan(String value) {
            addCriterion("star_point >", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointGreaterThanOrEqualTo(String value) {
            addCriterion("star_point >=", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointLessThan(String value) {
            addCriterion("star_point <", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointLessThanOrEqualTo(String value) {
            addCriterion("star_point <=", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointLike(String value) {
            addCriterion("star_point like", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointNotLike(String value) {
            addCriterion("star_point not like", value, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointIn(List<String> values) {
            addCriterion("star_point in", values, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointNotIn(List<String> values) {
            addCriterion("star_point not in", values, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointBetween(String value1, String value2) {
            addCriterion("star_point between", value1, value2, "starPoint");
            return (Criteria) this;
        }

        public Criteria andStarPointNotBetween(String value1, String value2) {
            addCriterion("star_point not between", value1, value2, "starPoint");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}